1. Field of the Invention
The present invention relates to the processing systems which handle large amounts of input/output data, such as network intermediate systems. More particularly, the present invention relates to a message passing architecture for a high volume network router system.
2. Description of Related Art
A network router is a system which allows a plurality of local area networks to communicate with one another, even when such networks are operating under different protocols. The router will have an interface to each of the networks using its resources. Users of the respective networks address packets to the router in order to transmit packets to other networks coupled to the router. When a network router is connected to a large number of networks, the possibility that a very large volume of data will be flowing through the router at a given time is quite high.
In the system known as NetBuilder II, manufactured by 3Com Corporation in Santa Clara, Calif., the assignee of the present application, a plurality of input/output modules are connected to a high speed parallel bus. Each of the input/output modules is connected to one or more local area networks, and forwards packets received across the high speed bus to a shared memory resource. A central routing processor routes the packets from the shared memory resource to the appropriate destination across the same high speed bus.
Although this architecture provides very high throughput rates for today's local area networks, future local area network designs are transmitting much higher volumes of data, and in many environments it is desirable to connect more and more local area networks to a single router. Thus, the throughput capabilities of the router in the prior art designs may be a limiting factor in the design.
For instance, one standard local area network known as Ethernet, today operates at 10 Mbits per second. Future Ethernet designs are planned which will operate at 100 Mbits per second. Also, high speed protocols, such as FDDI and the asynchronous transfer mode (ATM), have very high data rates.
In systems managing a large volume of input/output data, such as a network router, there are a number of design issues of importance. Particularly when there are a number of interfaces using shared resources, resource contention must be addressed. Contention for the resources causes problems with message latency, reliability, fairness, and robustness of service guarantees.
Latency refers to the delay between the time that a service is requested and actual initiation of that service request. Throughput is closely linked to latency. In general, with bursty traffic, such as encountered in network intermediate systems, higher throughput causes a higher variance in latencies, or at least higher peak latencies. Guarantees of low latency for transfers are most easily provided if the desired throughput is relatively low.
Also, reliability is an important factor in such systems. The reliability of data transfers is always relative, but can be made as reliable as the hardware on which it is running if the source of the transfers can be flow controlled. However, the cost of providing guaranteed delivery can be quite high. Further, general robustness principals require that each layer that requires reliability provide its own guarantees.
Fairness in the context of high volume I/O processors includes the notion of supporting different qualities of service as well as reasonably allocating services between peers. The types of fairness include providing equal shares, or at least a guaranteed percentage of share to each user of the resource by a fair queuing scheme. Also, fairness includes guaranteed progress, which could be designed to meet all feasible receive rates, or to provide a prioritized service system. Also, a fairness system can operate in an environment which provides a probably fair result, but no guarantee of fairness is assured, such as might be encountered in a system which randomly discards transfers when stressful situations are encountered.
Finally, such a system must be robust. Excessive traffic loads may adversely affect other well-behaved traffic in the interconnected networks, including high priority transfers within the device. Thus, in a network intermediate system environment, protection must be considered against misbehaving protocols which cause excessive traffic, network transients; natural excess traffic loads, which must be handled gracefully; and misbehaving hardware which causes retransmissions or otherwise effectively reduces the bandwidth of the system.
Accordingly, it is desirable to provide a high volume input/output processing system which effectively deals with the issues of latency, throughput, reliability, fairness, and robustness.